package cn.fxzhang.leetcode.no00;

/**
 * 88. 合并两个有序数组
 *
 * 类型：数组
 * 题解：从后往前填充nums1即可
 * 时间复杂度：O(N), N是数组中的元素数量
 * 空间复杂度：O(N), N是数组中的元素数量
 *
 * 提交记录(1/1)：
 * 执行用时: 0 ms, 击败了100.00%
 * 内存消耗: 38.4 MB, 击败了82.19%
 *
 * 【简单】通过次数329,044提交次数649,744
 * @author 张晓帆
 * @date 2021/04/05
 */
public class P0088_Merge_Sorted_Array {

    public void merge(int[] nums1, int m, int[] nums2, int n) {
        for (int i = m+n-1; i>=0; i--){
            if (m>0 && n>0) {
                nums1[i] = nums1[m-1] > nums2[n-1]? nums1[--m]: nums2[--n];
            } else {
                nums1[i] = m>0? nums1[--m]: nums2[--n];
            }
        }
    }
}
